package BL;

import DA.Conexion;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;

public class BLPropietario {

    int id;
    String nombre;
    String apellido1;
    String Apellido2;
    String avaluo;

    public BLPropietario(int id, String nombre, String apellido1, String Apellido2, String avaluo) {
        this.id = id;
        this.nombre = nombre;
        this.apellido1 = apellido1;
        this.Apellido2 = Apellido2;
        this.avaluo = avaluo;
    }

    public BLPropietario() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido1() {
        return apellido1;
    }

    public void setApellido1(String apellido1) {
        this.apellido1 = apellido1;
    }

    public String getApellido2() {
        return Apellido2;
    }

    public void setApellido2(String Apellido2) {
        this.Apellido2 = Apellido2;
    }

    public String getAvaluo() {
        return avaluo;
    }

    public void setAvaluo(String avaluo) {
        this.avaluo = avaluo;
    }

    public boolean insertarPropietario() throws SQLException {
        java.sql.Connection con = Conexion.getConexion();
        boolean result = false;
        if (con != null) {
            String sql = "{call InsertarPropietario(?,?,?,?,?)}";
            try {
                CallableStatement st = con.prepareCall(sql);
                st.setInt(1, this.getId());
                st.setString(2, this.getAvaluo());
                st.setString(3, this.getNombre());
                st.setString(4, this.getApellido1());
                st.setString(5, this.getApellido2());
                st.execute();
                result = true;
                con.close();
            } catch (SQLException ex) {
                throw ex;
            }
        }
        return result;
    }

    public DefaultComboBoxModel cargarComboAvaluos() {
        try {
            DefaultComboBoxModel modeloCombo = new DefaultComboBoxModel();
            java.sql.Connection conexion = Conexion.getConexion();
            java.sql.Statement st = conexion.createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM `avaluo`");
            while (rs.next()) {
                modeloCombo.addElement(rs.getObject("idAvaluo"));
            }
            rs.close();
            return modeloCombo;
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Se despicho", JOptionPane.ERROR_MESSAGE);
        }
        return null;
    }

    public boolean buscarPropietario(int codigo) throws SQLException {
//int cedula, String nombreb, String apel1, String apel2;
        boolean result = false;
        BLPropietario pro = null;
        try {
            java.sql.Connection conexion = Conexion.getConexion();
            Statement stmt = conexion.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT `CedulaPropietario`, `Avaluo_idAvaluo`, `NombrePropietario`, `Apellido1Propietario`, `Apellido2Propietario` FROM `propietario` WHERE `CedulaPropietario`= " + codigo);
            while (rs.next() == true) {
                int idb = rs.getInt("CedulaPropietario");
                String avaluob = rs.getString("Avaluo_idAvaluo");
                String nombreb = rs.getString("NombrePropietario");
                String apellido1b = rs.getString("Apellido1Propietario");
                String Apellido2b = rs.getString("Apellido2Propietario");
                nombre = nombreb;
                apellido1 = apellido1b;
                Apellido2 = Apellido2b;
                avaluo = avaluob;
                result = true;

            }
            rs.close();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Se despicho", JOptionPane.ERROR_MESSAGE);
        }
        return result;
    }

    public boolean editarPropietario() throws SQLException {
        java.sql.Connection con = Conexion.getConexion();
        Statement stmt = con.createStatement();

        boolean result = false;
        if (con != null) {
            try {
                String sql = "UPDATE `propietario` SET `CedulaPropietario`=" + id + ",`Avaluo_idAvaluo`= '" + avaluo + "',"
                        + "`NombrePropietario`= '" + nombre + "',`Apellido1Propietario`= '" + apellido1 + "',"
                        + "`Apellido2Propietario`= '" + Apellido2 + "' WHERE `CedulaPropietario`=" + id;
                stmt.executeUpdate(sql);
                result = true;
                con.close();
            } catch (SQLException ex) {
                throw ex;
            }
        }
        return result;
    }

    @Override

    public String toString() {
        return this.id + " - " + this.nombre;
    }

}
